package com.community.property.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.community.common.annotation.Excel;
import com.community.common.core.domain.BaseEntity;

/**
 * 内部工单对象 work_order
 * 
 * @author ruoyi
 * @date 2025-10-29
 */
public class WorkOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 工单ID */
    private Long workOrderId;

    /** 社区ID */
    @Excel(name = "社区ID")
    private Long communityId;
    /** 社区名称 */
    private String name;
    /** 工单类型 */
    @Excel(name = "工单类型")
    private String workOrderType;

    /** 工单标题 */
    @Excel(name = "工单标题")
    private String title;

    /** 工单内容 */
    @Excel(name = "工单内容")
    private String content;

    /** 房屋ID */
    @Excel(name = "房屋ID")
    private Long houseId;

    /** 报告人 */
    @Excel(name = "报告人")
    private String reporter;

    /** 报告人电话 */
    @Excel(name = "报告人电话")
    private String reporterPhone;

    /** 报告时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报告时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reportTime;

    /** 处理人 */
    @Excel(name = "处理人")
    private String assignee;

    /** 分配时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "分配时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date assignTime;

    /** 状态(待处理/处理中/已完成/已关闭) */
    @Excel(name = "状态(待处理/处理中/已完成/已关闭)")
    private Long status;

    /** 优先级 */
    @Excel(name = "优先级")
    private String priority;

    /** 处理描述 */
    @Excel(name = "处理描述")
    private String handleDescription;

    /** 处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date handleTime;

    /** 图片(JSON数组) */
    @Excel(name = "图片(JSON数组)")
    private String images;

    /** 预计完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date estimatedTime;

    /** 实际完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualTime;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setWorkOrderId(Long workOrderId)
    {
        this.workOrderId = workOrderId;
    }

    public Long getWorkOrderId() 
    {
        return workOrderId;
    }

    public void setCommunityId(Long communityId) 
    {
        this.communityId = communityId;
    }

    public Long getCommunityId() 
    {
        return communityId;
    }

    public void setWorkOrderType(String workOrderType) 
    {
        this.workOrderType = workOrderType;
    }

    public String getWorkOrderType() 
    {
        return workOrderType;
    }

    public void setTitle(String title) 
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }

    public void setContent(String content) 
    {
        this.content = content;
    }

    public String getContent() 
    {
        return content;
    }

    public void setHouseId(Long houseId) 
    {
        this.houseId = houseId;
    }

    public Long getHouseId() 
    {
        return houseId;
    }

    public void setReporter(String reporter) 
    {
        this.reporter = reporter;
    }

    public String getReporter() 
    {
        return reporter;
    }

    public void setReporterPhone(String reporterPhone) 
    {
        this.reporterPhone = reporterPhone;
    }

    public String getReporterPhone() 
    {
        return reporterPhone;
    }

    public void setReportTime(Date reportTime) 
    {
        this.reportTime = reportTime;
    }

    public Date getReportTime() 
    {
        return reportTime;
    }

    public void setAssignee(String assignee) 
    {
        this.assignee = assignee;
    }

    public String getAssignee() 
    {
        return assignee;
    }

    public void setAssignTime(Date assignTime) 
    {
        this.assignTime = assignTime;
    }

    public Date getAssignTime() 
    {
        return assignTime;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setPriority(String priority) 
    {
        this.priority = priority;
    }

    public String getPriority() 
    {
        return priority;
    }

    public void setHandleDescription(String handleDescription) 
    {
        this.handleDescription = handleDescription;
    }

    public String getHandleDescription() 
    {
        return handleDescription;
    }

    public void setHandleTime(Date handleTime) 
    {
        this.handleTime = handleTime;
    }

    public Date getHandleTime() 
    {
        return handleTime;
    }

    public void setImages(String images) 
    {
        this.images = images;
    }

    public String getImages() 
    {
        return images;
    }

    public void setEstimatedTime(Date estimatedTime) 
    {
        this.estimatedTime = estimatedTime;
    }

    public Date getEstimatedTime() 
    {
        return estimatedTime;
    }

    public void setActualTime(Date actualTime) 
    {
        this.actualTime = actualTime;
    }

    public Date getActualTime() 
    {
        return actualTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("workOrderId", getWorkOrderId())
            .append("communityId", getCommunityId())
            .append("name", getName())
            .append("workOrderType", getWorkOrderType())
            .append("title", getTitle())
            .append("content", getContent())
            .append("houseId", getHouseId())
            .append("reporter", getReporter())
            .append("reporterPhone", getReporterPhone())
            .append("reportTime", getReportTime())
            .append("assignee", getAssignee())
            .append("assignTime", getAssignTime())
            .append("status", getStatus())
            .append("priority", getPriority())
            .append("handleDescription", getHandleDescription())
            .append("handleTime", getHandleTime())
            .append("images", getImages())
            .append("estimatedTime", getEstimatedTime())
            .append("actualTime", getActualTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
